-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[ENH] Wire up quantized writer in compaction #6399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 02-10-_enh_quantized_spann_segment
Are you sure you want to change the base?
[ENH] Wire up quantized writer in compaction #6399
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Reviewer ChecklistPlease leverage this checklist to ensure your code review is thorough before approving Testing, Bugs, Errors, Logs, Documentation
System Compatibility
Quality
|
This comment has been minimized.
This comment has been minimized.
15768fa to
e3957b5
Compare
184f5c3 to
ff1afdf
Compare
|
Enable quantized SPANN writer throughout compaction and frontend This PR wires the USearch-based quantized SPANN writer through the worker, compaction manager, frontend, and schema layers so that collections whose schema enables quantization can spawn and persist quantized SPANN segments. It introduces the Key Changes• Update Possible Issues• Schema quantization defaults automatically set numerous SPANN parameters; existing collections may see unexpected overrides if tenant allow-list matches more broadly than intended. This summary was automatically generated by @propel-code-bot |
This comment has been minimized.
This comment has been minimized.
e3957b5 to
0a585d2
Compare
ff1afdf to
d599ae5
Compare
3324688 to
f823d3d
Compare
This comment has been minimized.
This comment has been minimized.
f823d3d to
d45735e
Compare
22ff37f to
fa35f48
Compare
d45735e to
d24f142
Compare
fa35f48 to
b02eb80
Compare
| let usearch_cache = | ||
| chroma_cache::from_config(&config.hnsw_provider.hnsw_cache_config).await?; | ||
| let usearch_provider = USearchIndexProvider::new(storage.clone(), usearch_cache); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[Performance] This creates a new, separate cache instance using the same configuration as the HNSW provider. If hnsw_cache_config specifies a memory limit (e.g., 1GB), creating a second cache here effectively doubles the potential memory usage (to 2GB).
Consider sharing the cache instance between providers if they are compatible, or explicitely configuring a separate cache for USearch to avoid implicit resource doubling.
Context for Agents
This creates a new, separate cache instance using the same configuration as the HNSW provider. If `hnsw_cache_config` specifies a memory limit (e.g., 1GB), creating a second cache here effectively doubles the potential memory usage (to 2GB).
Consider sharing the cache instance between providers if they are compatible, or explicitely configuring a separate cache for USearch to avoid implicit resource doubling.
File: rust/worker/src/compactor/compaction_manager.rs
Line: 516
Description of changes
Summarize the changes made by this PR.
Test plan
How are these changes tested?
pytestfor python,yarn testfor js,cargo testfor rustMigration plan
Are there any migrations, or any forwards/backwards compatibility changes needed in order to make sure this change deploys reliably?
Observability plan
What is the plan to instrument and monitor this change?
Documentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs section?